package com.zhang.gmall.util

import com.zhang.gmall.util.MyConfig.REDIS_HOST
import redis.clients.jedis.{Jedis, JedisPool, JedisPoolConfig}

/**
 * @title: redis连接工具类
 * @author: zhang
 * @date: 2022/3/21 16:57 
 */
object JedisUtil {

  var jedisPool: JedisPool = null

  def getJedis():Jedis ={
    if (jedisPool==null){
      //连接池配置
      val jedisPoolConfig = new JedisPoolConfig()
      jedisPoolConfig.setMaxTotal(100) //最大连接数
      jedisPoolConfig.setMaxIdle(20) //最大空闲
      jedisPoolConfig.setMinIdle(20) //最小空闲
      jedisPoolConfig.setBlockWhenExhausted(true) //忙碌时是否等待
      jedisPoolConfig.setMaxWaitMillis(5000) //忙碌时等待时长 毫秒
      jedisPoolConfig.setTestOnBorrow(true) //每次获得连接的进行测试
      val host = MyPropsUtils(MyConfig.REDIS_HOST)
      val port = MyPropsUtils(MyConfig.REDIS_PORT)
      jedisPool = new JedisPool(jedisPoolConfig,host,port.toInt)
    }
    jedisPool.getResource
  }

}
